﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sofire.DataComm.Remoting.Server
{
    /// <summary>
    /// 服务端错误列表。
    /// </summary>
    public enum ServerErrorCode
    {
        /// <summary>
        /// 表示在配置文件中无法找到 Application 节点。
        /// </summary>
        UnfoundApplication,
        /// <summary>
        /// 表示配置已被初始化。
        /// </summary>
        SettingInitialized,
        /// <summary>
        /// 表示配置文件的必填属性为空。
        /// </summary>
        EmptyAttribute,
        /// <summary>
        /// 表示端口已超出范围（1-65535），或者将字符串转换为端口失败。
        /// </summary>
        InvalidPort,
        /// <summary>
        /// 表示无效的地址。
        /// </summary>
        InvalidAddress,
        /// <summary>
        /// 表示会话超时的值错误。
        /// </summary>
        SessionExpiration,
        /// <summary>
        /// 表示服务版本的值错误。
        /// </summary>
        VersionExpiration,
        /// <summary>
        /// 表示最大连接数的值错误。
        /// </summary>
        MaxConnectionCount,
        /// <summary>
        /// 表示接收的最大缓冲区长度的值错误。
        /// </summary>
        MaxReceiveBufferSize,
        /// <summary>
        /// 表示最大的侦听并发数的值错误。
        /// </summary>
        ListenBacklog,
        /// <summary>
        /// 表示无效的类型，或者找不到指定的类型。
        /// </summary>
        InvalidType,
        /// <summary>
        /// 表示无效的契约。可能契约类型并非是接口或指定的服务类型尚未实现该契约。
        /// </summary>
        InvalidContract,
        /// <summary>
        /// 表示服务配置在 <see cref="Sofire.DataComm.Remoting.Server.Settings.InstanceRegisterMode.Call"/> 模式下，服务实例未提供无参的构造方法。
        /// </summary>
        InvalidConstructorWithCallMode,
        /// <summary>
        /// 表示服务配置在 <see cref="Sofire.DataComm.Remoting.Server.Settings.InstanceRegisterMode.Custom"/> 模式下，尚未注册 <see cref="Sofire.DataComm.Remoting.Server.Settings.ServiceSetting.InstanceCreating"/> 事件。
        /// </summary>
        UnregisteredInstanceCreating,
        /// <summary>
        /// 表示服务器配置的 <see cref="Sofire.DataComm.Remoting.Server.Settings.ServiceSetting.InstanceCreating"/> 事件，返回了一个 null。这是一个不合理的值。
        /// </summary>
        NullInstanceCreating,
    }
}
